package com.sojson.project.controller.param.verify;

import com.sojson.project.entity.po.Hotel;
import com.sojson.result.Result;
import com.sojson.util.StringUtil;

/**
 * 酒店信息控制器参数验证
 * 
 * @author liu
 * @date 2021-07-02
 */
public class HotelParamVerify {

    /**
     * 单条插入
     * 
     * @param dto
     * @return
     */
    public static Result<Integer> insert(Hotel dto) {
        if (StringUtil.isBlank(dto.getName())) {
            return Result.fail("酒店名称不能为空！");
        }
        if (StringUtil.isBlank(dto.getImg())) {
            return Result.fail("图片不能为空！");
        }
        if (StringUtil.isBlank(dto.getImgs())) {
            return Result.fail("图片列表不能为空！");
        }
        if (StringUtil.isBlank(dto.getStarLevelHotel())) {
            return Result.fail("酒店星级不能为空！");
        }
        if (StringUtil.isBlank(dto.getCity())) {
            return Result.fail("市不能为空！");
        }
        if (StringUtil.isBlank(dto.getArea())) {
            return Result.fail("区不能为空！");
        }
        if (StringUtil.isBlank(dto.getAddress())) {
            return Result.fail("详细地址不能为空！");
        }
        Float targetX = dto.getTargetX();
        if (StringUtil.isBlank(targetX)) {
            return Result.fail("经度不能为空！");
        }
        Float targetY = dto.getTargetY();
        if (StringUtil.isBlank(targetY)) {
            return Result.fail("维度不能为空！");
        }
        if (targetX > 180 || targetX <= -180 || targetY > 90 || targetY < -90) {
            return Result.fail("经纬度值错误！");
        }

        return Result.success();
    }

    /**
     * 通过id更新(局部更新)
     * 
     * @param dto
     * @return
     */
    public static Result<Integer> updateById(Hotel dto) {
        if (StringUtil.isBlank(dto.getId())) {
            return Result.fail("ID不能为空！");
        }
        Float targetX = dto.getTargetX();
        if (StringUtil.isNotBlank(targetX)) {
            if (targetX > 180 || targetX <= -180) {
                return Result.fail("经度值错误！");
            }
        }
        Float targetY = dto.getTargetY();
        if (StringUtil.isNotBlank(targetY)) {
            if (targetY > 90 || targetY < -90) {
                return Result.fail("纬度值错误！");
            }
        }

        return Result.success();
    }

}